<!--
 * @Author: cmyshare cmyshare@163.com
 * @Date: 2023-10-14 23:55:20
 * @LastEditors: cmyshare cmyshare@163.com
 * @LastEditTime: 2023-10-15 00:13:19
 * @FilePath: \Open-Vue\07_事件处理\1.事件的基本使用.html
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>事件的基本使用</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 
				事件的基本使用：
							1.使用v-on:xxx 或 @xxx 绑定事件，其中xxx是事件名；
							2.事件的回调需要配置在methods对象中，最终会在vm上；
							3.methods中配置的函数，不要用箭头函数！否则this就不是vm了；
							4.methods中配置的函数，都是被Vue所管理的函数，this的指向是vm 或 组件实例对象；
							5.@click="demo" 和 @click="demo($event)" 效果一致，但后者可以传参；
							6.@click="" 等于 v-on:click="" 点击事件
		-->
		<!-- 准备好一个容器-->
		<div id="root">
			<h2>欢迎来到{{name}}学习</h2>
			<!-- <button v-on:click="showInfo">点我提示信息</button> -->
			<button @click="showInfo1">点我提示信息1（不传参）</button>
			<button @click="showInfo2($event,66)">点我提示信息2（传参）</button>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		// 定义Vue实例
		const vm = new Vue({
			el:'#root',
			// 在data中属性，才会做数据劫持，通过数据代理的方式提供服务
			data:{
				name:'开放vue',
			},
			// 用methods配置属性项，将事件的回调配置进去
			// methods其中的函数，Vue实例没有做数据代理，因为函数不改
			methods:{
				// 函数方法，event事件对象
				showInfo1(event){
					// 拿到事件对象event，比如button
					console.log(event.target.innerText)
					//此处的this是vm，但showInfo1:()=>{}，this就是Window实例
					console.log(this) 
					alert('同学你好！')
				},
				// 通过$event传事件对象参数
				showInfo2(event,number){
					console.log(event,number)
					// console.log(event.target.innerText)
					// console.log(this) //此处的this是vm
					alert('同学你好！！')
				}
			}
		})
	</script>
</html>